package com.jiang.daily.Q2197;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Jiang
 * @version 1.0
 * @date 2025/09/16 17:28
 */
class Solution {
    public List<Integer> replaceNonCoprimes(int[] nums) {
        List<Integer> res = new ArrayList<>();
        for (int num: nums) {
            while (!res.isEmpty()) {
                int temp = res.get(res.size() - 1);
                int g = gcd(num, temp);
                if (g > 1) {
                    num = num / g * temp;
                    res.remove(res.size() - 1);
                } else {
                    break;
                }
            }
            res.add(num);
        }
        return res;
    }

    private int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}
